04. CA-CFAR

CA-CFAR

CA-CFAR

L3A79 CA-CFAR

CA-CFAR

CA-CFAR
Training Cells : 3
Guard Cell : 1

CA-CFAR
Training Cells : 3
Guard Cell : 1

CA-CFAR

CA-CFAR is the most commonly used CFAR detection technique. As seen in the previous lesson, the FFT blocks are generated on implementing range and doppler FFTs across the number of chirps. The CFAR process includes the sliding of a window across the cells in FFT blocks. Each window consists of the following cells.

Cell Under Test : The cell that is tested to detect the presence of the target by comparing the signal level against the noise estimate (threshold).

Training Cells : The level of noise is measured over the Training Cells. The Training Cells can be divided into two regions, the cells lagging the CUT, called lagging Training Cells and the cells leading the CUT, called Leading Training Cells. The noise is estimated by averaging the noise under the training cells. In some cases either leading or lagging cell average is taken, while in the other the leading and lagging cell average is combined and the higher of two is considered for noise level estimate.

The number of training cells should be decided based on the environment. If a dense traffic scenario then the fewer training cells should be used, as closely spaced targets can impact the noise estimate.

Guard Cells : The cells just next to CUT are assigned as Guard Cells. The purpose of the Guard Cells is to avoid the target signal from leaking into the training cells that could adversely affect the noise estimate.
The number of guard cells should be decided based on the leakage of the target signal out of the cell under test. If target reflections are strong they often get into surrounding bins.

Threshold Factor (Offset) : Use an offset value to scale the noise threshold. If the signal strength is defined in logarithmic form then add this offset value to the average noise estimate, else multiply it.

CFAR 1D Graphic

1D CFAR Exercise

L3A44 CFAR 1D And Big Picture

CFAR 1D Implementation

The following steps here can be used to implement CFAR in the next MATLAB exercise. You can use the code template below to get started as well.

T : Number of Training Cells

G : Number of Guard Cells

N : Total number of Cells

  1. Define the number of training cells and guard cells
  2. Start sliding the window one cell at a time across the complete FFT 1D array. Total window size should be: 2(T+G)+CUT
  3. For each step, sum the signal (noise) within all the leading or lagging training cells
  4. Average the sum to determine the noise threshold
  5. Using an appropriate offset value scale the threshold
  6. Now, measure the signal in the CUT, which is T+G+1 from the window starting point
  7. Compare the signal measured in 5 against the threshold measured in 4
  8. If the level of signal measured in CUT is smaller than the threshold measured, then assign 0 value to the signal within CUT.

CFAR 1D Further Research

% Implement 1D CFAR using lagging cells on the given noise and target scenario.

% Close and delete all currently open figures
close all;

% Data_points
Ns = 1000;

% Generate random noise
s=randn(Ns,1);

%Targets location. Assigning bin 100, 200, 300 and 700 as Targets with the amplitudes of 8, 9, 4, 11.
s([100 ,200, 300, 700])=[8 9 4 11];

%plot the output
plot(s);

% TODO: Apply CFAR to detect the targets by filtering the noise.

% 1. Define the following:
% 1a. Training Cells
% 1b. Guard Cells 

% Offset : Adding room above noise threshold for desired SNR 
offset=3;

% Vector to hold threshold values 
threshold_cfar = [];

%Vector to hold final signal after thresholding
signal_cfar = [];

% 2. Slide window across the signal length
for i = 1:(Ns-(G+T))     

    % 2. - 5. Determine the noise threshold by measuring it within the training cells

    % 6. Measuring the signal within the CUT

    % 8. Filter the signal above the threshold

    signal_cfar = [signal_cfar, {signal}];
end




% plot the filtered signal
plot (cell2mat(signal_cfar),'g--');

% plot original sig, threshold and filtered signal within the same figure.
figure,plot(s);
hold on,plot(cell2mat(circshift(threshold_cfar,G)),'r--','LineWidth',2)
hold on, plot (cell2mat(circshift(signal_cfar,(T+G))),'g--','LineWidth',4);
legend('Signal','CFAR Threshold','detection')

Solution

Workspace Lesson 3

Further Research

For further research, see the articles here and here .